import axios from "axios";
import { getToken, removeToken } from "./cookie";
import router from "@/router";

//baseURL  将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
//timeout  超时延迟5秒
//不同的功能对应不同的接口对应不同的地址，提取地址相同的前缀
axios.defaults.headers["Content-Type"] = "application/json;character=utf-8"
const service = axios.create({
    baseURL: "/dev-api",
    timeout: 5000,
})


//请求拦截器
service.interceptors.request.use(
    (config) => {
        if (getToken()) {
        //   config.headers["Authorization"] = getToken();
            config.headers["Authorization"] = "Bearer " + getToken();
        }
        return config;
      },
      (error) => {
        console.log(error)
        Promise.reject(error);
    }
);
//响应拦截器
service.interceptors.response.use(
    (res) => {
    // 未设置状态码则默认成功状态
    const code = res.data.code;
    const msg = res.data.msg;
    //判断登录状态下的token是否过期
    //通过返回的响应状态码是否为设定的3001
    if(code === 3001){
        ElMessage.error(msg);
        removeToken()
    }else if (code !== 1000) {
        ElMessage.error(msg);
        return Promise.reject(new Error(msg));
    } else {
        return Promise.resolve(res.data);
    }
    },
    (error) => {
        return Promise.reject(error);
    }
);

export default service